//
//  TKServer.h
//  TKAppBase_V1
//
//  Created by liubao on 15-2-28.
//  Copyright (c) 2015年 liubao. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "TKNetAddress.h"

/**
 轮训模式
 */
typedef enum
{
    /**
     *  @Author 刘宝, 2015-05-19 00:05:13
     *
     *  随机模式
     */
    LBMODE_RANDOM = 0,
    /**
     *  @Author 刘宝, 2015-05-19 00:05:22
     *
     *  顺序模式
     */
    LBMODE_LOOP = 1,
    /**
     *  @Author 刘宝, 2015-05-19 00:05:32
     *
     *  主备模式
     */
    LBMODE_BACKUPS = 2,
    /**
     *  @Author 刘宝, 2016-01-07 10:01:03
     *
     *  最优模式
     */
    LBMODE_BEST = 3,
    /**
     *  @Author 刘宝, 2016-01-07 10:01:03
     *
     *  期货最优模式
     */
    LBMODE_QHBEST =4
}LBMODE;

/**
 *  @Author 刘宝, 2015-02-28 16:02:17
 *
 *  服务器模型
 */
@interface TKServer : NSObject

/**
 *  @Author 刘宝, 2015-02-28 16:02:33
 *
 *  扫描时间间隔，秒
 */
@property(nonatomic,readonly)int scanInterval;

/**
 *  @Author 刘宝, 2015-02-28 16:02:37
 *
 *  网关名称
 */
@property(nonatomic,readonly)NSString *gateWayName;
    
/**
*  @Author 刘宝, 2015-02-28 16:02:41
*
*  域名地址列表
*/
@property(nonatomic,retain)NSMutableArray *netDomainArr;
    
/**
 *  @Author 刘宝, 2015-02-28 16:02:41
 *
 * IP地址列表
 */
@property(nonatomic,retain)NSMutableArray *netAddressArr;

/**
 *  @Author 刘宝, 2015-02-28 17:02:57
 *
 *  服务器轮询模式
 */
@property(nonatomic,readonly)int LBMode;

/**
 *  @Author 刘宝, 2015-03-27 10:03:31
 *
 *  连接模式
 */
@property(nonatomic,readonly)int mode;

/**
 *  @Author 刘宝, 2015-02-28 17:02:41
 *
 *  版本号
 */
@property(nonatomic,readonly)NSString *version;

/**
 *  @Author 刘宝, 2015-02-28 17:02:13
 *
 *  超时时间
 */
@property(nonatomic,readonly)int recTimeout;

/**
 *  @Author 刘宝, 2015-02-28 17:02:47
 *
 *  数据加密密钥
 */
@property(nonatomic,copy)NSString *key;

/**
 *  @Author 刘宝, 2016-01-12 03:01:50
 *
 *  使用的地址
 */
@property(nonatomic,retain)TKNetAddress *useNetAddress;

/**
 *  @Author 刘宝, 2016-03-01 00:03:53
 *
 *  配置文件名称
 */
@property(nonatomic,readonly)NSString *functionConfig;

/**
 *  @author 刘宝, 2016-11-16 20:11:03
 *
 *  服务端公钥证书的名称
 */
@property(nonatomic,readonly)NSString *serverPublicCer;

/**
 *  @author 刘宝, 2016-11-16 20:11:41
 *
 *  客户端公钥证书的名称
 */
@property(nonatomic,readonly)NSString *clientPublicCer;

/**
 *  @author 刘宝, 2016-11-16 20:11:13
 *
 *  客户端私钥证书的名称
 */
@property(nonatomic,readonly)NSString *clientPrivateCer;

/**
 *  @author 刘宝, 2016-11-16 20:11:48
 *
 *  客户端证书的密码
 */
@property(nonatomic,copy)NSString *clientPassword;

/**
 *  @author 刘宝, 2016-11-17 20:11:46
 *
 *  服务器版本号
 */
@property(nonatomic,readonly)NSString *serverVersion;

/**
 *  @author 刘宝, 2016-11-18 10:11:43
 *
 *  服务器认证模式（0:不认证，1：密码认证，2：证书双向认证）
 */
@property(nonatomic,readonly)NSString *vityifyMode;

/**
 *  @Author 刘宝, 2015-02-28 17:02:00
 *
 *  初始化
 *
 *  @param name      名称
 *  @param configMap 配置文件
 *
 *  @return
 */
-(id)initWithServerName:(NSString *)name configMap:(NSMutableDictionary *)configMap;

/**
 *  @Author 刘宝, 2015-02-28 17:02:26
 *
 *  获取网关服务器地址
 *
 *  @return
 */
-(TKNetAddress *)getRmdServer;

@end
